Принудительный опрос (Crash-Poll)
Дистанционное управление: T-Mail server
Дистанционное задание атрибутов письма
Служебные строки в письмах и их обработка
Подтверждения об отсылке и доставке письма
Этот режим служит для
того, чтобы оперативно связаться с некоторой системой и срочно провести сеанс
связи.
Существуют два варианта
работы в этом режиме. Первый вариант - немедленный опрос (Crash/Imm-Poll). Он выполняется,
невзирая ни на что - очередь, приоритеты, статусы Hold, Freeze, Undialable, время работы системы и т.п. Когда T-Mail находится в этом режиме, он делает минимальные
паузы между вызовами указанной системы и не принимает входящие вызовы. Наличие
односекундного интервала между вызовами можно задать или отменить с помощью
переменной Crash_Poll_Pause (t-mail.ctl).
Для того, чтобы включить
этот режим, нужно нажать клавиши <Shift-Tab> и набрать адрес системы. T-Mail будет вызывать систему с этим адресом до тех пор,
пока не будет проведен успешный сеанс связи. Оператор имеет возможность перейти
к нормальной работе повторным нажатием <Shift-Tab>.
Второй режим работы -
срочный опрос (Crash-Poll).
Он, в целом, схож с первым режимом, за исключением того, что учитывает время, в
которое вызываемая система принимает входящие вызовы (включая Txy-флаги нодлиста,
параметр Default_OH в t-mail.ctl и параметры Time в subst.lst). Статусы Freeze, Hold и Undialable, а также EMSI-флаги HAT, HXT и HFR игнорируются. В этом режиме T-Mail будет вызывать удаленную систему только, если это
разрешено в данное время. Для включения этого режима нужно нажать клавиши <Ctrl-Tab> и ввести адрес
вызываемой системы. Выход из этого режима осуществляется повторным нажатием
<Ctrl-Tab>.
Число попыток дозвона в
режиме немедленного опроса Crash-Poll не учитывается. Если для заданного адреса имеется
информация о hidden-линии(ях) (subst.lst), то
T-Mail будет чередовать
вызовы по основной и hidden линиям (и в случае немедленного опроса - невзирая
на ограничения по времени).
Вместо задания адреса
можно прямо указать телефон системы, предварив его символом '#'.
Если вы знаете, что
сеансы связи с этой системой запаролены, можно явно указать пароль, отделив его
символом '!' или '|' от номера телефона. Адрес системы в этом случае
использовать нельзя.
Примеры задания Crash-Poll:
5030/2
#126-6972
#123-4099
!paswrd2
Во время этого режима T-Mail продолжает работу по упаковке новой почты,
выполнению событий и анализу флагов. В случае выхода из программы режим
принудительного опроса Crash-Poll автоматически выключается.
Как работает FreePoll? Если эта функция включена (переменная FreePoll в файле t-mail.ctl), то перед ответом на входящий вызов T-Mail делает попытку обнаружить идентификатор CALLER ID, который может поступать вместе со словом "RING" от модема, либо в отдельной строке "CALLER ID". Это может быть идентификатор вызывающего абонента (при использовании современных телефонных станций), либо ответ определителя номера. Если такой идентификатор═ обнаружен и═ присутствует═ в═ файле freepoll.ctl,═ то T-Mail подсчитывает═ суммарный═ объем═ файлов,═ которые═ должны═ быть═ переданы на системы═ с═ адресами,═ указанными═ в═ строке═ этого═ файла, соответствующей полученному═ идентификатору.═ Если═ полученный═ объем═ меньше═ указанного в соответствующей строке файла freepoll.ctl, то T-Mail отвергает этот вызов и посылает═ в модем═ строку, определенную═ в переменной═ Modem_Reject_Answer.
Если же объем превышает
указанный, то сеанс связи проводится как обычно. Кроме того, если последующий
вызов с тем же CALLER ID поступит раньше, чем через интервал, указанный в freepoll.ctl, то в этом случае
сеанс связи будет проведен обязательно, без расчета объемов. Следует отметить,
что при использовании идентификатора вызывающего абонента модем "трубку не
поднимает".
Файл freepoll.ctl представляет собой
обычный текстовый файл, в котором в каждой строке описаны параметры для одного
идентификатора CALLER ID. Вот синтаксис такой строки:
<caller-id>══ <limit, kBytes>═ <interval, sec> <address list>
Пример файла freepoll.ctl:
01234567═══════════════ 30═══════════ 60═══════════ 123/34
345/67 567/90
34567═════ 5═════════════ 45═══════════ .999
09876543═══════════════ 10═══════════ 70═══════════ /3946═ 124:345/34
Обращения к ресурсам
сервера T-Mail происходит с помощью
служебных писем. Это обычные письма, но адресованы они T-Mail. Поле 'To:' такого письма должно содержать конструкцию:
T-Mail|<T-password>,
где═ <T-password> -═
пароль сервера T-Mail,═ определенный═ переменной═ в файле t-mail.ctl.
Например:
From: Andy Elkin 5030/15.1
To:══ T-Mail|my_password_no_5═════ 5030/15
Subj: Send═ c:\T-Mail\files\t-2300.arj═ /27 /51
Поле subject служебного письма
содержит задание серверу T-Mail. Тип задания определяется ключевым словом,
которое должно быть задано первым в строке. Вместо конструкции <адреса>
ниже задается один или несколько адресов систем, разделенных пробелами.
Синтаксис заданий:
Poll <адреса>══════ √ ═заставляет═
T-Mail провести сеанс связи с указанными системами;
Freq <file> <адреса> √
заставляет═ T-Mail запросить═
файл на═ другой системе═ (системах).═
При═ этом═ запоминается информация об═ этом, и, в═
случае, если будет принят═ файл
с═ совпадающим именем,═ он будет переслан═══ запросившему.═══
Можно═══ указать несколько
адресов через пробел;
Send <file> <адреса>═ √ послать файл на систему или несколько
систем, если указан список адресов;
Post <file> <адреса> √
оформить═ текстовый═ файл═
в═ виде═ письма═ и разослать по
указанным адресам;
Exec √ выполнить═ текст письма═ как командный═ файл. Тело письма переписывается в файл t-serv.bat (.cmd), который затем выполняется.
Set═
<переменная>=<новое значение> √ изменяет значение <переменной>. Допустимо
использовать любую переменную из файла t-mail.ctl. Этой возможностью следует пользоваться
внимательно. Нельзя изменить таким образом значение переменных Port, Total_Messages, Log_Buffer (t-mail.ctl). Не рекомендуется изменять значения переменных Address и Packets (t-mail.ctl).
CallBack
<адрес> √ функция═ Call═ Back.═ Позволяет═ инициировать немедленный══ опрос══
(Crash-Poll)═ указанной системы.══ Для═══ исполнения══ этой══
функции удаленным═ T-Mail═
необходимо,═ чтобы═ в поле 'To:'═ письма
после═ слова T-Mail═ был
указан либо═ главный═ пароль═
сервера═ T-Mail,═ либо пароль═══ функции══
CallBack,═══ заданный══ в t-mail.ctl══
удаленной══ системы══ переменной CallBack_Password. При совпадении паролей вызов будет инициирован
немедленно после распаковки такого письма. В качестве параметра <адрес>
может быть указан адрес какой-либо системы или номер телефона (с префиксом #).
Кроме того, после номера телефона может быть задан пароль по аналогии с
заданием Crash Poll с
клавиатуры (см. начало этой главы).
Примеры заданий:
To:══ T-Mail|password
Subj: Poll /2 /3 /6
To:══ T-Mail|password
Subj: Freq filename.ext /3 /7 .1
To: T-Mail|password
Subj: Post c:\txt\my_txt.doc /16 /18
To: T-Mail|password
Subj: Set Answer=0:00-4:00
To: T-mail|cbpass
Subj: CallBack 5030/15
To: T-mail|cbpass
Subj: CallBack═
#123-4567|sessionpassword
Телефон системы, по
отношению к которой осуществляется действие Poll, Freq или CallBack, должен быть известен. Если в этих случаях задан
адрес системы, телефон которой неизвестен, то T-Mail проигнорирует задание.
Обработка заданий
происходит сразу при распаковке пакета с письмами, поэтому следует быть
внимательным к заданию EXEC - если время на выполнение ощутимо и почта
распаковывается "на лету", сессия может оборваться. В случае, если
обработка запроса EXEC будет осуществлена во время текущего сеанса связи, то письмо-подтверждение
будет отослано автору запроса в этом же сеансе (в виде PKT-файла). Если же нет, то будет создано письмо (.msg) автору запроса с
атрибутом Direct.
При создании письма с
подтверждением (задание EXEC) используется файл \T-$$-<task ident>\t-server.txt, находящийся в каталоге, указанном в переменной Packets (t-mail.ctl). Здесь <task
ident> - номер задачи T-Mail. (Например: c:\t-mail\packets\T-$$-1\t-server.txt).
В этот файл можно перенаправлять
вывод команд, T-Mail
добавит к этому файлу содержимое команд из письма. Кроме того, в тексте письма
можно использовать "магическое" слово "t-server.log", вместо которого будет подставлено полное
имя соответствующего файла t-server.txt.
Например:
To:══ t-mail|password
Subj: Exec
dir \files\*.* >>t-server.log
Вместо "t-server.log" будет подставлено полное имя файла t-server.txt.
Сервер T-Mail'а может формировать копии отчета о своей работе
при выполнении Exec на адрес, заданный в переменной T-serverNotify в файле t-mail.ctl.
Можно дистанционно
задавать атрибуты письма, направляемого через какую-либо систему, если известен
пароль этой системы. В общем случае при распаковке с письма снимаются атрибуты Local (соответственно
перестают действовать Dir, Crash, Imm, Hub, в отдельных случаях Freq), Recv, Send, Transit, Orphan, Kill/Sent. Зная пароль, можно
форсировать установку некоторых атрибутов. Это задается специальной командой в
1-й строке письма (после кладжей):
set!<t-password>!attrib <атрибут> [<атрибут>...]
Могут использоваться
такие атрибуты: Local, Dir, Crash, Hold, Kill.
Например:
Set!my_passw!attrib Dir Hold
При распаковке письму
добавятся атрибуты Dir и Hold.
(К атрибутам Dir и Crash
автоматически добавляется и атрибут Local, иначе флаг Dir не действует на T-Mail).
Сама строка из письма
после обработки убирается и факт такого воздействия фиксируется в log-файле.
Несколько особых строк в
письмах T-Mail воспринимает как
служебные и это вызывает его определенные нестандартные действия. Служебные
строки должны располагаться в самом начале тела письма. Они действуют только
для писем, сформированных на вашей системе (и имеющих, следовательно, атрибут Local). Письмо, содержащее
только служебные строки, считается пустым.
Задержка письма
Hold to [hh:mm] [dd[-mm[-yy]]]
Hold to [hh:mm] [dd[/mm[/yy]]]
Появление строки такого
вида заставляет задержать упаковку этого письма до наступления момента,
определенного в этой строке.
Примеры:
Hold Hold Hold Hold Hold |
to to to to to |
3:00 15/12/92 16-12-92 16/12 4:00 16 4:00 |
Если не указана дата, то
она предполагается текущей. Если не указано время, но указана дата, то письмо
задерживается до наступления 0 часов указанной даты. Если в этой строке указан
момент времени в прошлом, то письмо отправится сразу.
Принудительная
маршрутизация
Route to <address>
Это заставляет при
упаковке письма игнорировать все правила маршрутизации и принудительно
отправить его на систему с адресом <address>.
Примеры:
Route to 5030/2
Route to /2
В том, случае, если в
отсылаемом транзитном письме установлен атрибут AuditRequest (ARq), T-Mail сформирует письмо-уведомление отправителю с
указанием времени отсылки и адреса назначения. Для этого будет заполнена форма,
содержащаяся в файле audit.tрl. Все это произойдет только в том случае, если
переменная Audit_Send_Msg (t-mail.ctl) имеет значение Yes.
Если в письме, прибывшем
на вашу систему и адресованном на один из адресов вашей системы установлен
атрибут ReturnReceiptRequest (RRq), T-Mail сформирует письмо автору этого письма с
подтверждением доставки. Для этого будет заполнена форма, содержащаяся в файле retreq.tрl. Все это произойдет только в том случае, если
переменная Audit_RRQ_Msg (t-mail.ctl) имеет значение Yes.
Файлы audit.tpl и retreq.tpl должны находиться в
том же каталоге, что и t-mail.ctl. Вместо служебных
полей в этих файлах T-Mail
подставит следующие значения:
~U √ имя автора письма;
~P √ имя адресата;
~N √ адрес адресата;
~A √ собственный адрес;
~L √ адрес, куда письмо отослано (для audit.tpl) или откуда принято
(для retreq.tpl);
~S═ √ ═поле Subj письма;
~D═ √ екущая
дата;
~T═ √ текущее
время.